<?php
/**
 * 页面初始化类
 *
 * 根据页面脚本的不同名称加载不同的模块
 *
 * @author 纹身特湿 <judasnow@gmail.com>
 */
class app{

	/**
	 * 返回脚本名
	 *
	 * @return string $script_name
	 */
	static function get_script_name(){

		//请求的url被按'/','\','.'分隔开，脚本名必为
		//倒数第二项。
		$request = split( '[/.\\]' , $_SERVER['SCRIPT_NAME'] );
	 	return $request[ count($request)-2 ];
	}

	/**
	 * 返回应用的根目录
	 * 不使用./path中定义的常量好处在于
	 * 重用是更为方便，没有耦合。
	 *
	 * @return string $app_root
	 */
	static function get_app_root(){
		 
		 //根据class文件夹所在的位置
		 return realpath(dirname(__FILE__) . "/../../");
	}

	/**
	 * 返回脚本类型
	 *
	 * @return string $script_type
	 */
	static function get_script_type(){

		$scrpit_name = self::get_script_name();
	 	//目前只有两种类型的脚本
		if( strstr( $script_name , 'do_' ) ){
		
			return 'process';
		}else{
			 
			return 'display';
		}
	}

	/**
	 * 加载指定模块
	 *
	 */
	static function load_mod( $mod ){
	
	 	 require_once( self::get_app_root()."/include/function/$mod.function.php" );
	}

	/**
	 * 进行脚本的初始化
	 *
	 */
	static function init(){
	 	 
		//加载自动包含模块
		self::load_mod( 'autoload' );
	 	//打开session
		session::create();

		//根据脚本类型，加载不同的模块
		switch( self::get_script_type() ){
			 
			 //逻辑处理类型的脚本，'do_'开头的
			 case 'process':
				 self::load_mod( 'mongo_connect' );
	 	 	 	 break;
			 case 'display':
				 break;

			 default:
			 //无法识别的脚本类型
				 break;				 
		}
	}
}

